Groovy তে স্ট্রিংস (Strings) এবং রেগুলার এক্সপ্রেশন (Regular Expressions) খুবই গুরুত্বপূর্ণ এবং শক্তিশালী টুল। Groovy স্ট্রিং হ্যান্ডলিং এবং টেক্সট প্রোসেসিংয়ের জন্য অনেক সুবিধাজনক এবং সহজ টুলস প্রদান করে, যেমন স্ট্রিং ইন্টারপোলেশন এবং রেগুলার এক্সপ্রেশন নিয়ে কাজ করা।
Groovy তে স্ট্রিংস খুবই গুরুত্বপূর্ণ ডেটা টাইপ, যা টেক্সট বা চরিত্রের সিকোয়েন্স সংরক্ষণ করতে ব্যবহৃত হয়। Groovy তে স্ট্রিং ব্যবহারের জন্য কিছু সুবিধাজনক বৈশিষ্ট্য রয়েছে, যেমন স্ট্রিং ইন্টারপোলেশন, মাল্টিলাইন স্ট্রিং ইত্যাদি।
Groovy তে স্ট্রিং সাধারণত ডাবল কোটস (" "
) দিয়ে সংজ্ঞায়িত করা হয়।
def greeting = "Hello, Groovy!"
println greeting // Output: Hello, Groovy!
এছাড়া, একক কোটস (' '
) দিয়েও স্ট্রিং ডিফাইন করা যায়, তবে একক কোটস ব্যবহার করলে ইন্টারপোলেশন করা যায় না।
def message = 'Welcome to Groovy'
println message // Output: Welcome to Groovy
Groovy তে স্ট্রিং ইন্টারপোলেশন খুব সহজ, যার মাধ্যমে আপনি সরাসরি স্ট্রিংয়ের মধ্যে ভেরিয়েবল ব্যবহার করতে পারেন।
def name = "John"
def message = "Hello, $name!"
println message // Output: Hello, John!
এখানে $name
ভেরিয়েবলটি স্ট্রিংয়ের মধ্যে সরাসরি যোগ হয়ে যায় এবং এটি আউটপুট হিসেবে Hello, John!
প্রদান করে।
Groovy তে মাল্টিলাইন স্ট্রিং তৈরি করতে তিনটি ডাবল কোটস (""" """
) ব্যবহার করা হয়।
def multilineString = """This is a
multiline
string in Groovy."""
println multilineString
এখানে, """ """
ব্যবহার করে মাল্টিলাইন স্ট্রিং তৈরি করা হয়েছে।
Groovy তে স্ট্রিং এর উপরে বিভিন্ন মেথড কাজ করে। কিছু সাধারণ স্ট্রিং মেথডের মধ্যে রয়েছে:
toUpperCase()
: স্ট্রিংকে বড় হাতের অক্ষরে রূপান্তরিত করে।
def name = "groovy"
println name.toUpperCase() // Output: GROOVY
toLowerCase()
: স্ট্রিংকে ছোট হাতের অক্ষরে রূপান্তরিত করে।
def name = "GROOVY"
println name.toLowerCase() // Output: groovy
substring()
: স্ট্রিংয়ের নির্দিষ্ট অংশ নেয়।
def name = "Groovy"
println name.substring(0, 3) // Output: Gro
replace()
: স্ট্রিংয়ের নির্দিষ্ট অংশ প্রতিস্থাপন করে।
def name = "Hello, John!"
println name.replace("John", "Groovy") // Output: Hello, Groovy!
রেগুলার এক্সপ্রেশন (RegEx) একটি শক্তিশালী টুল যা টেক্সট প্যাটার্ন ম্যাচিং এবং ম্যানিপুলেশনের জন্য ব্যবহৃত হয়। Groovy তে রেগুলার এক্সপ্রেশন ব্যবহার করা অত্যন্ত সহজ এবং এটি Java এর রেগুলার এক্সপ্রেশন লাইব্রেরি ব্যবহার করে কাজ করে।
Groovy তে রেগুলার এক্সপ্রেশন তৈরি করতে আপনি /
দিয়ে প্যাটার্ন লিখতে পারেন।
def pattern = /[a-zA-Z]+/
এখানে, /[a-zA-Z]+/
একটি রেগুলার এক্সপ্রেশন যা একটি বা একাধিক ইংরেজি অক্ষর খুঁজে পাবে।
matches()
মেথড ব্যবহার করাmatches()
মেথড ব্যবহার করে একটি স্ট্রিং রেগুলার এক্সপ্রেশন প্যাটার্নের সাথে মেলে কিনা তা চেক করা যায়।
def text = "Hello123"
def pattern = /[a-zA-Z]+/
println text.matches(pattern) // Output: false
এখানে, matches()
মেথড চেক করে যে text
স্ট্রিংটি শুধুমাত্র ইংরেজি অক্ষর (বড় বা ছোট) দিয়ে গঠিত কিনা। এর মানে, "Hello123"
এ ডিজিট থাকার কারণে এটি মেলে না।
find()
মেথড ব্যবহার করাfind()
মেথড একটি স্ট্রিংয়ে রেগুলার এক্সপ্রেশন প্যাটার্নের সাথে মিল পাওয়া প্রথম অংশটি খুঁজে বের করে।
def text = "abc 123 xyz"
def pattern = /\d+/
def match = text.find(pattern)
println match // Output: 123
এখানে, find()
মেথড সংখ্যার সিকোয়েন্স (\d+
) খুঁজে বের করেছে, যা "123"
।
replaceAll()
মেথড ব্যবহার করাreplaceAll()
মেথড ব্যবহার করে রেগুলার এক্সপ্রেশন মিলে এমন অংশগুলো প্রতিস্থাপন করা যায়।
def text = "Hello 123, Hello 456"
def pattern = /\d+/
def replacedText = text.replaceAll(pattern, "XYZ")
println replacedText // Output: Hello XYZ, Hello XYZ
এখানে, সমস্ত সংখ্যাকে "XYZ"
দ্বারা প্রতিস্থাপন করা হয়েছে।
Groovy তে আপনি রেগুলার এক্সপ্রেশন প্যাটার্ন সরাসরি ভেরিয়েবল হিসেবে ব্যবহার করতে পারেন এবং এটি খুবই কার্যকরী।
def pattern = ~/^\d{3}-\d{2}-\d{4}$/
def ssn = "123-45-6789"
println ssn ==~ pattern // Output: true
এখানে, ==~
চেক করে যে ssn
ভেরিয়েবলটি নির্দিষ্ট রেগুলার এক্সপ্রেশন প্যাটার্নের সাথে মেলে কিনা।
[abc]
: 'a', 'b', অথবা 'c' এর মধ্যে যেকোনো একটি চরিত্র।[^abc]
: 'a', 'b', অথবা 'c' ছাড়া অন্য যেকোনো একটি চরিত্র।[a-z]
: একক ছোট হাতের অক্ষর।[A-Z]
: একক বড় হাতের অক্ষর।\d
: একটি ডিজিট (০-৯)।\D
: একটি নন-ডিজিট।\w
: একটি শব্দের অক্ষর (a-z, A-Z, ০-৯, _)\W
: একটি নন-শব্দ চরিত্র।\s
: সাদা স্থান (space, tab, newline)\S
: সাদা স্থান ছাড়া অন্য কোন চরিত্র।Groovy তে স্ট্রিংস এবং রেগুলার এক্সপ্রেশন খুবই গুরুত্বপূর্ণ। স্ট্রিং ইন্টারপোলেশন, মাল্টিলাইন স্ট্রিং এবং স্ট্রিং মেথডস কোড লেখাকে আরও সহজ এবং পরিষ্কার করে তোলে। অন্যদিকে, রেগুলার এক্সপ্রেশন একটি অত্যন্ত শক্তিশালী টুল যা টেক্সট প্রোসেসিং এবং প্যাটার্ন ম্যাচিংয়ের জন্য ব্যবহৃত হয়। Groovy তে রেগুলার এক্সপ্রেশন ব্যবহার করা সহজ এবং কার্যকরী, এবং এটি বিভিন্ন টেক্সট ডেটা নিয়ে কাজ করতে সহায়ক।
Groovy তে String এবং GString (Groovy String) এর ধারণা রয়েছে, যা Java এর তুলনায় কিছু অতিরিক্ত সুবিধা প্রদান করে। সাধারণভাবে, Groovy তে স্ট্রিং কাজের জন্য String
ব্যবহার করা হয়, এবং GString হলো একটি বিশেষ ধরনের স্ট্রিং যা স্ট্রিং ইন্টারপোলেশন সমর্থন করে, অর্থাৎ এটি স্ট্রিং এর মধ্যে ভেরিয়েবল বা এক্সপ্রেশন অন্তর্ভুক্ত করতে দেয়।
Groovy তে String
হলো Immutable, অর্থাৎ একবার তৈরি হলে এটি পরিবর্তন করা যায় না। Groovy তে String
তৈরি করার জন্য সাধারণত ' '
(single quotes) বা " "
(double quotes) ব্যবহার করা হয়।
def singleQuoteString = 'Hello, Groovy!'
def doubleQuoteString = "Hello, Groovy!"
println singleQuoteString // Output: Hello, Groovy!
println doubleQuoteString // Output: Hello, Groovy!
String
একবার তৈরি হলে পরিবর্তন করা যায় না।def part1 = "Hello"
def part2 = "Groovy"
def fullString = part1 + ", " + part2 + "!"
println fullString // Output: Hello, Groovy!
GString (Groovy String) হলো Groovy তে একটি বিশেষ ধরনের স্ট্রিং, যা স্ট্রিং ইন্টারপোলেশন সমর্থন করে। GString এ ডাবল কোটসের (" "
) ভেতরে $
চিহ্ন ব্যবহার করে ভেরিয়েবল বা এক্সপ্রেশন ব্যবহার করা যায়। GString এর সাহায্যে সহজেই স্ট্রিং এর মধ্যে ভেরিয়েবল অন্তর্ভুক্ত করা সম্ভব, যা Java তে নেই।
def name = "Groovy"
def greeting = "Hello, $name!" // $name একটি GString
println greeting // Output: Hello, Groovy!
GString এ $
চিহ্ন ব্যবহার করে শুধু ভেরিয়েবলই নয়, যেকোনো এক্সপ্রেশনও অন্তর্ভুক্ত করা যায়।
def num = 10
def result = "The square of $num is ${num * num}."
println result // Output: The square of 10 is 100.
$
ব্যবহার করে ভেরিয়েবল বা এক্সপ্রেশন যোগ করা যায়।বৈশিষ্ট্য | String | GString |
---|---|---|
ইন্টারপোলেশন | ইন্টারপোলেশন সমর্থন করে না | ইন্টারপোলেশন সমর্থন করে |
ডিক্লারেশন | ' ' বা " " (single or double) | শুধুমাত্র " " (double quotes) |
ডাইনামিক পরিবর্তন | Immutable | Dynamic - ভেরিয়েবল পরিবর্তিত হলে স্ট্রিং আপডেট হয় |
def name = "John"
def normalString = 'Hello, $name!' // এটি একটি সাধারণ String
def groovyString = "Hello, $name!" // এটি একটি GString
println normalString // Output: Hello, $name!
println groovyString // Output: Hello, John
পার্থক্য: single quotes দিয়ে তৈরি স্ট্রিং সাধারণ String হিসেবে গণ্য হয় এবং $name
ইন্টারপোলেট করা হয় না। কিন্তু double quotes দিয়ে তৈরি GString এর মধ্যে $name
ইন্টারপোলেট হয় এবং $name
এর মান John
হিসাবে প্রতিস্থাপিত হয়।
GString ব্যবহার করার মাধ্যমে স্ট্রিং এ ভেরিয়েবল এবং এক্সপ্রেশন যোগ করা সহজ হয়। এটি ডাইনামিক স্ট্রিং তৈরি করতে অত্যন্ত কার্যকরী এবং স্ট্রিং ম্যানিপুলেশনকে সহজ করে তোলে। উদাহরণস্বরূপ, যদি কোনো মেসেজ বা রিপোর্ট তৈরি করতে হয় যেখানে ভেরিয়েবল পরিবর্তিত হতে পারে, তখন GString ব্যবহার করা সুবিধাজনক।
def item = "laptop"
def price = 1200
def message = "The price of the $item is $${price}."
println message // Output: The price of the laptop is $1200.
Groovy তে Strings এবং GStrings এর মধ্যে মূল পার্থক্য হলো GStrings স্ট্রিং ইন্টারপোলেশন সমর্থন করে, যেখানে ভেরিয়েবল বা এক্সপ্রেশনকে সরাসরি স্ট্রিং এর মধ্যে অন্তর্ভুক্ত করা যায়। String গুলি Immutable, কিন্তু GString ডাইনামিক্যালি পরিবর্তনশীল এবং স্ট্রিং ম্যানিপুলেশনকে আরও সহজ করে তোলে।
Groovy তে String Interpolation এবং Multiline Strings ব্যবহৃত হয় স্ট্রিং পরিচালনা (String Manipulation) এর ক্ষেত্রে। এগুলি কোড লেখার সময় স্ট্রিং তৈরি এবং ফরম্যাট করার প্রক্রিয়াকে সহজ এবং দ্রুত করে তোলে। Groovy তে স্ট্রিংয়ের মান প্রবাহ (dynamic values) যুক্ত করা এবং একাধিক লাইনে স্ট্রিং লেখা খুবই সহজ।
String Interpolation হল এমন একটি প্রক্রিয়া যার মাধ্যমে স্ট্রিংয়ের মধ্যে ভেরিয়েবল বা এক্সপ্রেশন যোগ করা হয়। Groovy তে এটি সহজে করা যায়। Groovy তে স্ট্রিং ইন্টারপোলেশনের জন্য double quotes (" ") ব্যবহার করা হয়।
def name = "Alice"
def age = 25
// স্ট্রিং ইন্টারপোলেশন
println "Hello, my name is $name and I am $age years old."
আউটপুট:
Hello, my name is Alice and I am 25 years old.
এখানে, $name
এবং $age
ভেরিয়েবলগুলো স্ট্রিংয়ের মধ্যে ইন্টারপোলেট (insert) করা হয়েছে।
def x = 10
def y = 5
// এক্সপ্রেশন ইন্টারপোলেশন
println "The sum of $x and $y is ${x + y}."
আউটপুট:
The sum of 10 and 5 is 15.
এখানে, ${x + y}
এর মাধ্যমে একটি এক্সপ্রেশনকে স্ট্রিংয়ের মধ্যে অন্তর্ভুক্ত করা হয়েছে। ${}
ব্যবহার করা হয় যখন এক্সপ্রেশন বা গাণিতিক অপারেশন করতে হয়।
Groovy তে multiline strings ব্যবহার করতে খুবই সহজ এবং সরল উপায় রয়েছে। আপনি একাধিক লাইনে স্ট্রিং লেখার জন্য triple double quotes ("""
) বা triple single quotes ('''
) ব্যবহার করতে পারেন।
def multilineString = """This is a multiline string.
It can span across multiple lines
without needing special concatenation."""
println multilineString
আউটপুট:
This is a multiline string.
It can span across multiple lines
without needing special concatenation.
এখানে, """
দিয়ে স্ট্রিং শুরু এবং শেষ করা হয়েছে, যা একাধিক লাইনে স্ট্রিং লেখার সুবিধা দেয়।
Groovy তে multiline strings এর মধ্যে string interpolation ব্যবহার করা সম্ভব।
def name = "Alice"
def multilineString = """Hello, $name!
This is a multiline string.
It can span across multiple lines."""
println multilineString
আউটপুট:
Hello, Alice!
This is a multiline string.
It can span across multiple lines.
এখানে, $name
ভেরিয়েবলটি স্ট্রিংয়ের মধ্যে ইন্টারপোলেট করা হয়েছে।
Groovy তে multiline strings এর মধ্যে যদি leading বা trailing whitespace থাকে, তবে তা সরানো যেতে পারে।
def multilineString = '''
This is a multiline string.
Leading spaces are included,
but we can remove them using stripMargin().
'''
println multilineString.stripMargin()
আউটপুট:
This is a multiline string.
Leading spaces are included,
but we can remove them using stripMargin().
এখানে, .stripMargin()
মেথড ব্যবহার করে স্ট্রিংয়ের মার্জিন (leading spaces) সরিয়ে ফেলা হয়েছে। আপনি মার্জিন চিহ্ন হিসাবে |
বা অন্য কিছু ব্যবহার করতে পারেন।
"$variable"
বা ${expression}
ব্যবহার করা হয়। এটি কোড লেখাকে আরও পরিষ্কার এবং সংক্ষিপ্ত করে।"""
বা '''
ব্যবহার করা হয়। এতে দীর্ঘ স্ট্রিং লিখতে সুবিধা হয়, এবং স্ট্রিং ইন্টারপোলেশনও সম্ভব হয়।Regular Expressions (RegEx) একটি শক্তিশালী টুল যা টেক্সটের মধ্যে প্যাটার্ন খুঁজে বের করতে, মিলিয়ে দেখতে এবং টেক্সটকে ম্যানিপুলেট করতে ব্যবহৃত হয়। এটি একটি বিশেষ ভাষা যা স্ট্রিং প্যাটার্নগুলি বর্ণনা করতে ব্যবহৃত হয় এবং আপনি যেকোনো ধরনের টেক্সট সনাক্ত করতে, পরিবর্তন করতে বা যাচাই করতে এই প্যাটার্নগুলি ব্যবহার করতে পারেন।
RegEx সাধারণত ব্যবহৃত হয়:
a
, b
, 1
, @
, %
ইত্যাদি লিটারেল ক্যারেকটার হিসেবে কাজ করে।apple
শুধুমাত্র "apple"
এই শব্দকে মিলাবে।.
(Dot): যেকোনো একক চরিত্রের সাথে মিলে।a.c
যেকোনো string এর মধ্যে "a", যেকোনো এক ক্যারেকটার এবং "c" এর সাথে মিলবে, যেমন "abc"
, "axc"
, "a9c"
ইত্যাদি।^
(Caret): স্ট্রিংয়ের শুরুর সাথে মিলবে।^abc
শুধুমাত্র এমন স্ট্রিং এর সাথে মিলে যা "abc"
দিয়ে শুরু হয়, যেমন "abc123"
।$
(Dollar Sign): স্ট্রিংয়ের শেষে মিলবে।abc$
শুধুমাত্র এমন স্ট্রিং এর সাথে মিলে যা "abc"
দিয়ে শেষ হয়, যেমন "123abc"
।[]
(Square Brackets): কোনো নির্দিষ্ট চরিত্রের এক বা একাধিক অপশন।[aeiou]
যেকোনো একটি vowel এর সাথে মিলবে। "a"
, "e"
, "i"
ইত্যাদি।|
(Pipe or OR): দুটি বা ততোধিক প্যাটার্নের মধ্যে কোন একটি মিললে কাজ করবে।cat|dog
যেকোনো "cat" অথবা "dog" শব্দের সাথে মিলে।*
(Asterisk): পূর্ববর্তী চরিত্রটি শূন্য বা তার বেশি বার রিপিট হতে পারে।a*
যেকোনো স্ট্রিং এর মধ্যে শূন্য বা একাধিক "a" এর সাথে মিলবে, যেমন "aaa"
, "a"
, বা ""
(শূন্য)।+
(Plus): পূর্ববর্তী চরিত্রটি এক বা একাধিক বার রিপিট হতে পারে।a+
যেকোনো স্ট্রিং এর মধ্যে এক বা একাধিক "a" এর সাথে মিলবে, যেমন "a"
, "aa"
, "aaa"
।?
(Question Mark): পূর্ববর্তী চরিত্রটি এক বা শূন্য বার রিপিট হতে পারে।a?
যেকোনো স্ট্রিং এর মধ্যে এক বা শূন্য "a" এর সাথে মিলবে, যেমন "a"
বা ""
(শূন্য)।{n}
: ঠিক n বার রিপিট হওয়া।a{3}
এর মানে হচ্ছে ঠিক তিনটি "a" এর সাথে মিলবে, যেমন "aaa"
।{n,}
: কমপক্ষে n বার রিপিট হওয়া।a{2,}
এর মানে হচ্ছে দুই বা তার বেশি "a" এর সাথে মিলবে, যেমন "aa"
, "aaa"
।{n,m}
: n থেকে m বার রিপিট হওয়া।a{2,4}
এর মানে হচ্ছে দুই থেকে চারটি "a" এর মধ্যে মিলবে, যেমন "aa"
, "aaa"
, "aaaa"
।\
ব্যবহার করতে হবে।\.
এটা একটি ডট চরিত্র হিসাবে কাজ করবে, যাতে .com
এর মতো শব্দের মধ্যে ডট মিলানো যায়।ইমেইল ঠিকানা যাচাই করা:
একটি সাধারণ RegEx ব্যবহার করে একটি বৈধ ইমেইল ঠিকানা যাচাই করা।
def emailPattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/
def email = "example@example.com"
if (email =~ emailPattern) {
println "Valid email address."
} else {
println "Invalid email address."
}
এখানে, RegEx প্যাটার্নটি একটি বৈধ ইমেইল ঠিকানার জন্য নির্ধারিত ফরম্যাট চেক করে।
নাম পরীক্ষা করা:
RegEx ব্যবহার করে আপনি নামের মধ্যে শুধুমাত্র অক্ষর এবং স্পেস থাকতে পারে এমন নিয়ম নির্ধারণ করতে পারেন।
def namePattern = /^[a-zA-Z\s]+$/
def name = "John Doe"
if (name =~ namePattern) {
println "Valid name."
} else {
println "Invalid name."
}
এখানে, ^[a-zA-Z\s]+$
প্যাটার্নটি শুধুমাত্র অক্ষর এবং স্পেসের মধ্যে মিলবে।
=~
অপারেটর ব্যবহার করে RegEx এর সাথে স্ট্রিং মিলানো যায় এবং এটি একটি শক্তিশালী টুল হিসেবে কাজ করে টেক্সট ম্যানিপুলেশন এবং যাচাইয়ের জন্য।Groovy তে Pattern Matching এবং String Searching অত্যন্ত শক্তিশালী এবং কার্যকরী কৌশল। Groovy বিভিন্ন built-in মেথড এবং regular expressions (regex) ব্যবহার করে স্ট্রিংগুলির মধ্যে প্যাটার্ন খোঁজা, মিলানো এবং প্রক্রিয়াকরণ করতে সহায়তা করে। এখানে আমরা Groovy তে Pattern Matching এবং String Searching এর ব্যবহারের কিছু সাধারণ পদ্ধতি আলোচনা করবো।
Groovy তে প্যাটার্ন মেচিং সাধারণত regular expressions (regex) ব্যবহার করে করা হয়। Groovy তে ==~
এবং =~
অপারেটরগুলি ব্যবহার করা হয় প্যাটার্ন মেচিং এর জন্য।
==~
Operatorএই অপারেটরটি একটি স্ট্রিং এবং regex এর মধ্যে মেচিং পরীক্ষা করে এবং এটি true
অথবা false
রিটার্ন করে।
==~
):def text = "Hello, Groovy!"
// যদি স্ট্রিংটি প্যাটার্নের সাথে মেলে
def match = text ==~ /.*Groovy.*/
println match // Output: true
এখানে /.*Groovy.*/
হলো একটি regular expression যা "Groovy" শব্দটি যে কোনো স্থানে থাকতে পারে এমন স্ট্রিং চেক করে।
=~
Operator (Matcher)=~
অপারেটরটি একটি matcher তৈরি করে যা স্ট্রিংয়ের মধ্যে প্যাটার্ন মেচিংয়ের জন্য ব্যবহৃত হয় এবং এটি প্যাটার্ন মেচিংয়ের সব ম্যাচের একটি Matcher অবজেক্ট প্রদান করে।
=~
):def text = "Hello, Groovy! Welcome to Groovy World"
// matcher তৈরি করে প্যাটার্ন মেচিং
def matcher = text =~ /Groovy/
println matcher // Output: [Groovy, Groovy]
println matcher.size() // Output: 2 (Groovy শব্দটি দুটি বার এসেছে)
এখানে matcher
আমাদের স্ট্রিং text
এর মধ্যে "Groovy" শব্দটি খুঁজে বের করছে এবং এর সব ম্যাচ প্রদর্শন করছে।
Capture groups ব্যবহার করে আপনি regex প্যাটার্নের অংশবিশেষ বের করতে পারেন। Groovy capture groups সাপোর্ট করে, যার মাধ্যমে স্ট্রিংয়ের অংশ বিশেষ মিলে গেলে আপনি তা ক্যাপচার করতে পারেন।
def text = "John's age is 25"
// Capture group দিয়ে নাম এবং বয়স বের করা
def matcher = (text =~ /(\w+)'s age is (\d+)/)
println "Name: ${matcher[0][0]}" // Output: Name: John's
println "Age: ${matcher[0][1]}" // Output: Age: 25
এখানে, আমরা (\\w+)
এর মাধ্যমে নাম এবং (\\d+)
এর মাধ্যমে বয়সকে ক্যাপচার করেছি।
Groovy তে স্ট্রিং খোঁজার জন্য কিছু built-in মেথড রয়েছে। Groovy এর স্ট্রিং ক্লাসের সাহায্যে আপনি স্ট্রিংয়ের মধ্যে নির্দিষ্ট শব্দ বা উপাদান খুঁজে বের করতে পারেন।
contains
মেথড:Groovy তে contains
মেথড ব্যবহার করে আপনি একটি স্ট্রিংয়ের মধ্যে নির্দিষ্ট সাবস্ট্রিং খুঁজে দেখতে পারেন।
def text = "Groovy is awesome"
// স্ট্রিংয়ে "Groovy" শব্দটি আছে কি না চেক করা
if (text.contains("Groovy")) {
println "Found 'Groovy'!" // Output: Found 'Groovy'!
}
indexOf
মেথড:indexOf
মেথড ব্যবহার করে আপনি একটি স্ট্রিংয়ের মধ্যে কোনো নির্দিষ্ট সাবস্ট্রিংয়ের প্রথম অবস্থান খুঁজে পেতে পারেন। এটি যদি স্ট্রিংটি না পায় তবে -1
রিটার্ন করে।
def text = "Groovy is awesome"
def index = text.indexOf("awesome")
println index // Output: 12
এখানে, awesome
শব্দটি text
স্ট্রিংয়ের 12 তম অবস্থানে রয়েছে।
find
মেথড:Groovy তে find
মেথড ব্যবহার করে আপনি একটি প্যাটার্নের প্রথম ম্যাচ বের করতে পারেন। এটি regex প্যাটার্নের সাথে প্রথম ম্যাচের উপাদান রিটার্ন করবে।
def text = "Groovy is awesome"
// প্রথম ম্যাচ খুঁজে বের করা
def match = text.find(/\b\w{6}\b/)
println match // Output: Groovy
এখানে, \b\w{6}\b
প্যাটার্নটি প্রথম ৬ অক্ষরের শব্দ (যেমন "Groovy") খুঁজে বের করছে।
findAll
মেথড:findAll
মেথড ব্যবহার করে আপনি একটি স্ট্রিংয়ের সব প্যাটার্ন মেলানো উপাদান খুঁজে বের করতে পারেন।
def text = "Groovy is awesome, Groovy is fun"
// সব "Groovy" শব্দ খুঁজে বের করা
def matches = text.findAll(/Groovy/)
println matches // Output: [Groovy, Groovy]
এখানে, findAll
সব "Groovy" শব্দের ম্যাচ পেয়ে একটি তালিকা রিটার্ন করেছে।
Groovy তে স্ট্রিংয়ের সাথে কাজ করার জন্য আরও কিছু regex মেথড রয়েছে, যেমন:
replaceAll
: একটি প্যাটার্ন ম্যাচ করার পর সেটি রিপ্লেস করতে ব্যবহৃত হয়।matches
: পুরো স্ট্রিংয়ের সাথে regex প্যাটার্ন মেলে কিনা চেক করতে ব্যবহৃত হয়।replaceAll
মেথড:def text = "Groovy is awesome"
def newText = text.replaceAll("awesome", "fantastic")
println newText // Output: Groovy is fantastic
matches
মেথড:def text = "Groovy"
def isMatch = text.matches("Groovy")
println isMatch // Output: true
এখানে, matches
মেথড পুরো স্ট্রিংটি প্যাটার্নের সাথে মিলিয়ে চেক করছে।
==~
এবং =~
অপারেটরগুলি ব্যবহার করে স্ট্রিংয়ের মধ্যে প্যাটার্ন মেচ করা যায়।contains
, indexOf
, find
, findAll
মেথডগুলি ব্যবহার করে আপনি স্ট্রিংয়ের মধ্যে নির্দিষ্ট শব্দ বা প্যাটার্ন খুঁজে পেতে পারেন।replaceAll
এবং matches
মেথড ব্যবহার করে আপনি স্ট্রিংয়ের নির্দিষ্ট অংশ পরিবর্তন বা পুরো স্ট্রিং ম্যাচ করতে পারেন।Groovy তে Pattern Matching এবং String Searching শক্তিশালী, দ্রুত এবং নমনীয়ভাবে কাজ করতে সহায়তা করে, যা কোডের কার্যকারিতা বৃদ্ধি করে এবং ডেভেলপারদের জন্য এটি আরও ব্যবহারযোগ্য করে তোলে।
common.read_more